import common.TreeNode;

/**
 * @author tmh
 * @date 2024/10/6 21:17
 * @description
 */
public class T230二叉搜索树中第K小的元素 {

    private int k;
    private int result;
    public int kthSmallest(TreeNode root, int k) {
        this.k=k;
        dfs(root);
        return result;
    }
    private void dfs(TreeNode root){
        if (root==null){
            return;
        }
        //往左遍历
        dfs(root.left);
        if (k==0){
            return;
        }
        //当我们遍历到一个节点的时候，我们先执行--k，如果k等于0，说明这个节点就是我们需要的节点，然后保存在result里面
        if (--k==0){
            result=root.val;
            return;
        }
        dfs(root.right);
    }


}
